Business forecasting using predictive metadata

ABSTRACT

A business forecasting tool utilizing metadata is provided. A processor receives one or more sets of business metrics. A processor receives a first metadata descriptor for a first set of business metrics of the one or more sets of business metrics. A processor receives a second metadata descriptor for a second set of business metrics of the one or more sets of business metrics. A processor prepares the first set of business metrics for prediction of a third set of business metrics based on, at least in part, the first metadata descriptor, where the first set and third set each correspond to a different time period. A processor generates a fourth set of business metrics based on, at least in part, the second metadata descriptor, where the second set and fourth set each correspond to a different time period.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of businessforecasting, and more particularly to generating predictive metadata.

Business forecasting is a technique used by companies to determinepredictions in the operation and profitability of a business ordepartment within the business. The predictions help establish trendswhich influence decisions about budgeting, resource allocation, andplanning. Business forecasting also provides help in determininglong-term goals for businesses based on identified trends. Businessforecasting focuses analysis on business metrics. Business metricsprovide businesses with the ability to measure performance. Keyperformance indicators, or KPIs, are business metrics that evaluatecertain operations that a business finds indicative of successfulperformance. A business may use KPIs to evaluate its success, as a wholeor for particular departments or projects. These assessments often leadto the identification of potential improvements, so KPIs are routinelyused in process improvement. For many businesses, the amount of businessmetrics used and created during forecasting can be numerous. Businessintelligence is a field of practice concerning the selection,determination, and presentation of KPIs and business metrics.

SUMMARY

Embodiments of the present invention provide a method, system, andprogram product for business forecasting. A processor receives one ormore sets of business metrics, wherein at least one of the one or moresets of business metrics comprises a set of recorded events. A processorreceives a first metadata descriptor for a first set of business metricsof the one or more sets of business metrics. A processor receives asecond metadata descriptor for a second set of business metrics of theone or more sets of business metrics. A processor prepares the first setof business metrics for prediction of a third set of business metricsbased on, at least in part, the first metadata descriptor, wherein thefirst set and third set each correspond to a different time period. Aprocessor generates a fourth set of business metrics based on, at leastin part, the second metadata descriptor, wherein the second set andfourth set each correspond to a different time period.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating a networkedenvironment, in accordance with an exemplary embodiment of the presentinvention;

FIG. 2 illustrates operational processes of a program for businessforecasting using predictive metadata, on a computing device within theenvironment of FIG. 1, in accordance with an exemplary embodiment of thepresent invention;

FIG. 3 illustrates operational processes of a treatment program forpreparing business metrics based on determined metadata, operating on acomputing device within the environment of FIG. 1, in accordance with anexemplary embodiment of the present invention;

FIG. 4 illustrates a user interface of a dashboard program, inaccordance with an exemplary embodiment of the present invention; and

FIG. 5 depicts a block diagram of components of a computing deviceexecuting a dashboard program, a metadata program, a treatment program,a prediction program and a database management program, in accordancewith an exemplary embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present disclosure recognize that businessforecasting solutions require manual set-up to determine how thedifferent types of information interacts with one another. Embodimentsof the present disclosure provide that, by determining the types ofinteractions automatically prior to forecasting, the businessforecasting process can be streamlined. Also provided is thatdetermining the types of information and how those types will behavewhen forecasted further aids in presentation of the information in abusiness intelligence dashboard.

Business forecasting techniques can be used to draw conclusions from rawdata describing the operation of a business. The conclusions may beuseful in making informed decisions regarding the current state of thebusiness and use the information to plan projects. Due to the largeamount of data collected, a dashboard is presented as an interface tosummarize the raw data or present conclusions. A dashboard offersimportant information, such a key performance indicators, upon which thestakeholder bases decisions regarding the operation of the business. Adashboard may also identify trends in data and present predictedperformance by way of business forecasting. Business forecastingdetermines trends and predicts data values of key performance indicatorsthrough statistical analysis, which may be computationally complex. Adashboard presents determined trends such that planning future projectscan also take into consideration possible changes to the key performanceindicators.

Business forecasting requires constant updating due to the large amountsof incoming data describing the operation of a business. As such,determining a prediction quickly becomes computationally complex andtaxing on the computing systems used to generate dashboards. Embodimentsof the present disclosure provide for determining descriptors (i.e.,metadata) that identify a type of information for the incoming datadescribing the operations of a business. Based on the determinedmetadata, some predicted data values can be automatically determinedwithout the need to perform constant statistical analysis each time abusiness forecast is requested. By preparing the requested data forforecasting, embodiments of the present disclosure reduce the amount ofbusiness information statistically analyzed each time a new businessforecast is requested.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is a functional block diagram illustrating networkedenvironment, generally designated 100, in accordance with one embodimentof the present invention. Networked environment 100 includes user device110, analytics device 120 and database 130 connected over network 140.User device 110 includes dashboard program 112. Analytics device 120includes treatment program 122, metadata program 124, prediction program126 and preferences data 128. Database 130 includes database managementprogram 132 and business metrics data 134.

In various embodiments of the present invention, user device 110,analytics device 120 and database 130, respectively, are computingdevices that can each be a standalone device, a server, a laptopcomputer, a tablet computer, a netbook computer, a personal computer(PC), or a desktop computer. In another embodiment, user device 110,analytics device 120 and database 130 each respectively represent acomputing system utilizing clustered computers and components to act asa single pool of seamless resources. In general, analytics device 120can be any computing device or a combination of devices with access touser device 110 and database 130 and is capable of executing dashboardprogram 112, treatment program 122, metadata program 124, predictionprogram 126 and database management program 132. User device 110,analytics device 120 and database 130 may each respectively includeinternal and external hardware components, as depicted and described infurther detail with respect to FIG. 5.

In this exemplary embodiment, dashboard program 112 is stored on userdevice 110. However, in other embodiments, dashboard program 112 may bestored externally and accessed through a communication network, such asnetwork 140. In this exemplary embodiment, treatment program 122,metadata program 124, prediction program 126 and preferences data 128are stored on analytics device 120. However, in other embodiments,treatment program 122, metadata program 124, prediction program 126 andpreferences data 128 may be stored externally and accessed through acommunication network, such as network 140. In this exemplaryembodiment, database management program 132 and business metrics data134 are stored on database 130. However, in other embodiments, businessmetrics data 134 may be stored externally and accessed through acommunication network, such as network 140. Network 140 can be, forexample, a local area network (LAN), a wide area network (WAN) such asthe Internet, or a combination of the two, and may include wired,wireless, fiber optic or any other connection known in the art. Ingeneral, network 140 can be any combination of connections and protocolsthat will support communications between user device 110, analyticsdevice 120 and database 130, in accordance with a desired embodiment ofthe present invention.

In exemplary embodiments, dashboard program 112 of user device 110provides an interface which presents graphical representations of keyperformance indicators (KPIs), in the form of one or more reports to auser. Dashboard program 112 sends a request for business metrics todatabase management program 132 of database 130 based on the KPIs andbusiness metrics displayed in a report. A business metric is one or moredata values that describe the operation of a business according to aparticular method of measurement to which the business metriccorresponds. A KPI is a business metric that reflects or representsprogress of a business or organization toward a goal. A business metricmay describe the operation of a business on a continuous, transactional,batch, or other basis. A business metric may correspond to methods ofmeasurements related to, for example, sales revenue, profit, fixedcosts, variable costs or inventory. Business metrics may also includespecific information regarding a transaction that a business hasundertaken, such as information describing a party in the transaction,e.g., an age of a consumer, a location of a purchase or a department ofthe business the transaction is attributed to. A KPI may be presented bya report of dashboard program 112 in relation to one or more otherbusiness metrics. For example, a user of dashboard program 112 mayrequest a report that presents a KPI as a function of one or more otherbusiness metrics. KPIs and their relation to other business metrics canbe used to determine trends for the operation of the business. Thereports can enable a user of dashboard program 112 to generate strategicplans.

In exemplary embodiments, database management program 132 retrievesbusiness metrics from business metrics data 134 of database 130.Database management program 132 sends the business metrics to dashboardprogram 112. Dashboard program 112 receives the business metrics andupdates the reports based on the received business metrics. In someembodiments, dashboard program 112 automatically updates the businessmetrics used to present the reports. For example, the reports may beupdated at intervals measured in, for example, seconds, hours, days,months, quarters, years, or other units of time. In some embodiments,database management program 132 determines that a change has occurred tobusiness metrics stored in business metrics data 134. In response,database management program 132 sends the relevant business metrics todashboard program 112. For example, database management program 132 mayreceive a request to change or add business metrics to business metricdata 134 and, in response, database management program 132 sends theupdated business metrics to dashboard program 112. Alternatively,database management program 132 may monitor business metrics data 134for changes. In response to determining that a change has occurred,database management program 132 may send updated business metrics todashboard program 112. In other embodiments, dashboard program 112receives a user interaction indicating a request to update one or morereports of a dashboard. Dashboard program 112 queries one or both ofdatabase management program 132 based on the request in order toretrieve the business metrics from business metrics data 134.

In exemplary embodiments, dashboard program 112 presents one or morereports via user device 110. Which reports are presented is based on aconfiguration stored in preferences data 128 of analytics device 120.Dashboard program 112 can update preferences data 128 (e.g., based onuser input) in order to add, change or remove reports to be presented bydashboard program 112. For example, a user can select any number ofbusiness metrics and KPIs to be presented in a report when addingreports to dashboard program 112. Also, a user may add additional KPIsor business metrics to an existing report. A user of user device 110 mayconfigure one or more reports, each of which displays one or more KPIsand the relation of each displayed KPI to one or more business metrics.Configurations of a report are stored in preferences data 128.Configurations may include the KPIs and business metrics included in areport, a range of values to present as dimensions in a report, a timeinterval, a time period (e.g., the beginning and end points in time forwhich a report is presented), a report type (e.g., bar graph, linegraph, table) and any rules in handling the KPIs and business metricspresented in a report. For example, dashboard program 112 retrieves aconfiguration for a report from preferences data 128. The configurationincludes a KPI corresponding to sales, with a time interval for calendarmonths and a time period of the trailing twelve months. Theconfiguration also indicates including in the report the business metriccorresponding to the department that realized the sales. Furthermore,the configuration also indicates that the report should be presented asa bar graph. Dashboard program 112 sends a request to databasemanagement program 132 for sales for each department over the lasttwelve months. Dashboard program 112 presents a report comprising a bargraph. Twelve sets of bars are presented, one for each of the trailingtwelve months. Each set of bars for a corresponding month comprises abar for the sales that a particular department generated for that month.

In some embodiments, the one or more reports may also be grouped suchthat changes to preferences data 128 applied to the group are applied toeach report that is a member of the group. Both the KPIs and businessmetrics to be presented in a report and any groupings of reports arestored as preferences data 128. A report may present business metricsand KPIs over one or more intervals of time (for example, one or moredaily, weekly, monthly or yearly intervals). The interval of time overwhich a report presents a business metric or KPI may be determined basedon an interval of time associated with the presented business metric orKPI. Alternatively, the interval of time may be determined by, invarious examples, user input, configurations (e.g., as stored inpreferences data 128), or a pre-determined template.

In exemplary embodiments, dashboard program 112 provides an interfaceelement to toggle the display of a predicted view between an enabled anda disabled state. The predicted view is a view that displays predictedvalues of KPIs and business metrics alongside recorded values of KPIsand business metrics. Recorded values of KPIs and business metrics maybe stored in business metrics data 134. The interface element may enableor disable the view for one or more of the reports presented bydashboard program 112. Based on user input indicating to enable thepredicted view for a report, dashboard program 112 sends a request toupdate the report with information regarding predicted values for theKPIs and business metrics currently represented by the report totreatment program 122. In some embodiments, dashboard program 112presents an interface element that can receive user input indicating alength of time beyond the time period currently represented by thereport that the predicted view will present when it is enabled. Forexample, the user may indicate certain duration (e.g., three months ortwo quarters).

In exemplary embodiments, treatment program 122 identifies, based onpreferences data 128, the KPIs and business metrics presented by areport in response to receiving a request to generate a predicted viewfor the report. Treatment program 122 analyzes preferences data 128 todetermine the current configuration of a report as displayed bydashboard program 112 as well as any applicable rules related to theKPIs and business metrics displayed within the report. For example, acurrent configuration may identify the type of graphical representationcurrently displayed by a report, e.g., a line graph of weekly sales forthe current fiscal year. As another example, an applicable rule for areport may describe the order in which the business metrics are mappedto the dimensions of a graph, e.g., the primary and secondary axes. Upondetermination of the KPIs and business metrics presented in the report,the configuration stored in preferences data 128 for a report, and anyapplicable rules, treatment program 122 requests metadata describing theKPIs and business metrics from metadata program 124.

In exemplary embodiments, metadata program 124 generates descriptorsrepresenting how the business metrics are to be prepared when generatinga predicted view of a report. Metadata program 124 applies statisticalmodels and techniques to determine trends and relationships among eachbusiness metric stored in business metric data 134. Such statisticalmodels and techniques may include, for example, regression analysis,least squares, moving average, curve fitting, hypothesis testing, datamining, pattern recognition, time series models, econometric models,autoregressive integrated moving average, single exponential smoothing,derivative models, univariate models, multivariate models or othermodels and techniques. The statistical models may also includeseasonality treatment. Metadata program 124 generates descriptors forbusiness metrics stored in business metrics data 134. Descriptors forbusiness metrics may include descriptive properties of a particularbusiness metric and a behavior or trend of the business metric. In someembodiments, database management program 132 sends a notification tometadata program 124 of any changes. Changes to business metric data 134may include new types of business metrics added, business metrics beingremoved, or changes in values of business metrics. In response toreceiving the notification, metadata program 124 generates thedescriptors for the business metrics stored in business metrics data134. In other embodiments, metadata program 124 generates thedescriptors in response to treatment program 122 receiving a request togenerate a predicted view from dashboard program 112. For example,dashboard program 112 receives user input to generate a predicted viewfor a report. Dashboard program 112 sends a request to treatment program122 to prepare a set of predicted business metrics to present. Treatmentprogram 122 sends a request to metadata program 124 to generatedescriptors.

In exemplary embodiments, metadata program 124 generates metadatadescriptors of properties describing business metrics stored in businessmetrics data 134. One property of that a metadata descriptor maydescribe is whether a business metric stored in business metrics data134 is an independent metric of the business metrics. An independentmetric is a data variable stored in business metrics data 134 thatuniquely identifies other business metrics. The independent metric maybe temporal, e.g., timestamp or month a specific business metrics wasrecorded or occurred. Independent metrics may be nominal, e.g., acustomer name/identifier or a department. Independent metrics may alsobe spatial (e.g., a storefront location, a manufacturing plant location,a territory, a country or region). Independent metrics may varyindependently of the other information stored in business metrics data134. Another property of metadata descriptors is if a particular pieceof business metrics is a dependent metric. Business metrics withdependent metric metadata descriptors depend on or are influenced byother information stored in business metrics data 134. Dependent metricsmay depend on business metrics determined to be independent metrics orother business metrics that are also dependent metrics.

In exemplary embodiments, metadata program 124 classifies independentmetrics into one of two types of metadata, longitudinal independentmetrics and non-longitudinal independent metrics. Longitudinalindependent metrics are independent data fields that can be projectedalong an axis. For example, a business metric representing the monththat a transaction occurs may be a longitudinal independent metric sinceit can be projected along an axis of time. A non-longitudinalindependent metric cannot be projected along an axis but is stillunique, and therefore independent, to the other fields of thetransaction. For example, a data field representing a department may bea non-longitudinal independent metric since it is unique to thetransaction, however it cannot be projected since the departments of abusiness are limited to an enumerated group and will therefore need tobe directly copied for a prediction of predicted values.

In exemplary embodiments, metadata program 124 generates additionalmetadata descriptors for dependent metrics. Dependent metrics mayinclude two additional types of metadata descriptors: known series andunknown series. Known series are business metrics that havepredetermined trends or relationships with business metrics with theindependent metrics metadata descriptor and other business metrics withthe known series metadata descriptor. For example, a known series may bea fixed cost related to a transaction. The fixed cost will not vary foreach transaction. The values of other dependent metrics, such as totalnumber of sales, will not affect the known series value. An unknownseries is one that has a non-predetermined trend or relationship andrequires forecasting or other predictive techniques to generate apredicted set of values. For example, an unknown series may be sales ofa product for the next three months of a quarter.

In exemplary embodiments, metadata program 124 generates additionalmetadata descriptors for known series. The additional metadatadescriptors include recorded series and expression series. Recordedseries are dependent metrics that comprise pre-existing values stored inbusiness metrics data 134, such as sales figures from a time period inthe past. Expression series are dependent metrics that can be determinedby using an equation or other known relationships between otherdependent metrics and independent metrics. For example, an expressionseries may be last year's monthly profit where the expression seriesmetadata descriptor would associate a mathematical expression of otherdependent metrics and independent metrics to calculate the expressionseries. The expression for last year's monthly profit would be asfollows, last year's revenue for a month would be the total cost(recorded series) for a month (longitudinal independent metric)subtracted from the total revenue (recorded series) for a month(longitudinal independent metric). In exemplary embodiments, metadataprogram 124 stores the determined metadata descriptor, as well as anyexpressions determined for expression series, in preferences data 128for each type of business metrics stored in business metric data 134. Inother embodiments, the determined metadata descriptor for each type ofbusiness metrics is stored in business metric data 134.

In some embodiments, a user may manually assign metadata descriptors forbusiness metrics. An interface is presented to a user of dashboardprogram 112 to assign a metadata descriptor for a business metric. Forexample, a user may assign a metadata descriptor when adding businessmetrics to business metrics data 134. As another example, a user maychange a metadata descriptor determined by metadata program 124 for abusiness metric. A user's assignment of metadata descriptor may bestored in preferences data 128 or as part of business metric data 134.

In exemplary embodiments, treatment program 122 prepares a predicted setof business metrics to be forecasted by prediction program 126. Based onthe period of time to be forecasted, treatment program 122 projects therecorded business metrics determined to be independent metrics into thepredicted set of business metrics. For example, treatment program 122creates a new set of predicted business metrics for longitudinalindependent metrics based on the length of the period for the requestedforecast, incrementing the longitudinal independent metric for eachentry in the set of predicted business metrics. As another example,non-longitudinal independent metrics are copied to the set of predictedbusiness metrics in the order for which they appear in the recordedbusiness metrics. Treatment program 122 imports known series into theset of predicted business metrics. Regarding recorded known series,treatment program 122 retrieves the recorded business metrics timeshifted by the period of forecasting. For example, if the businessmetric data 134 was the previous year's monthly sales and theforecasting period is twelve months, then treatment program 122 importsthe monthly sales of the current year to the predicted business metrics.Treatment program 122 calculates expression series based on theprojected independent metrics and imported recorded series comprisingthe predicted business metrics. A more detailed description of howtreatment program 122 uses metadata determine predicted business metricsis found below in FIG. 3. In some embodiments, treatment program 122also formats the data such that prediction program 126 can interpret theinformation without additional conversion. For example, if the businessmetric data is formatted in Extensible Markup Language, or XML, howeverprediction program 126 is programmed to process Predictive Model MarkupLanguage, or PMML, then treatment program 122 will convert the businessmetrics prior to sending to prediction program 126.

In exemplary embodiments, treatment program 122 sends the prepared setof predicted business metrics to prediction program 126. Predictionprogram 126 determines trends for business metrics and forecastsbusiness metrics with the unknown series metadata descriptor. Predictionprogram 126 may forecast business metrics using prediction methods suchas linear regression, moving averages, data mining or patternrecognition. In other embodiments, various other prediction methods ofdetermining a trend in a business metrics or a relationship to predictone or more business metrics may be used. Prediction program 126generates the values in the predicted business metrics for the unknownseries. Prediction program 126 returns the predicted business metrics totreatment program 122. Treatment program 122 sends the set of predictedbusiness metrics to dashboard program 112. Dashboard program 112presents a predicted view using the set of predicted business metricsrelated to the report for which the predicted view was enabled for. Amore detailed description of how dashboard program 112 presentspredicted business metrics for the one or more reports for a predictedview is found below in FIG. 4.

FIG. 2, is a flowchart illustrating operational processes, generallydesignated 200, of treatment program 122, metadata program 124 andprediction program 126, all executing on analytics device 120, inaccordance with an embodiment.

In process 202, treatment program 122 receives a request to update oneor more reports of dashboard program 112. Treatment program 122retrieves the respective configurations from preferences data 128 forthe one or more reports. The request may also include a period of timefor a predicted view to be presented. In one embodiment, the updaterequest includes a request to update the one or more reports with apredicted view of the business metrics presented in the one or morereports. In other embodiments, a request may be for a group of reports.In such embodiments, treatment program 122 retrieves the respectiveconfigurations from preferences data 128 for each of the reportsrepresented by the group.

In process 204, metadata program 124 determines metadata descriptors forthe recorded business metrics. Metadata program 124 receives therecorded business metrics from database management program 132. Inexemplary embodiments, metadata program 124 determines whether ametadata descriptor has been previously determined for a specificbusiness metric. If a metadata descriptor has already been determined,then metadata program 124 keeps the metadata descriptor. If a metadatadescriptor has not been determined, then metadata program 124 determinesa metadata descriptor for the business metric. Metadata program 124stores the metadata descriptors in preferences data 128.

In process 206, treatment program 122 prepares a set of predictedbusiness metrics. Treatment program 122 creates an initial set ofpredicted business metrics and generates one or more values based on thedetermined metadata descriptors (see process 204). Treatment program 122generates values for predicted business metrics with determined metadatadescriptors of independent metrics and dependent metrics. Thepreparation and generation of predicted business metrics prior toprediction of the business metrics with the unknown series metadatadescriptor is discussed in more detail in FIG. 3 below.

In process 208, prediction program 126 determines the values for thepredicted business metrics with determined metadata descriptors ofunknown series. Prediction program 126 determines trends orrelationships (e.g., by statistical analysis) for business metrics withdetermined metadata descriptors of unknown series. Prediction program126 generates values for the predicted business metrics with determinedmetadata descriptors unknown series. Prediction program 126 sends thegenerated values for the predicted business metrics to treatment program122.

In process 210, treatment program 122 updates the one or more reportswith the predicted business metrics. Treatment program 122 sends theupdated reports to dashboard program 112. A more detailed description ofhow dashboard program 112 presents predicted business metrics for theone or more reports for a predicted view is found below in FIG. 4.

FIG. 3, is a flowchart illustrating the operational processes, generallydesignated 206, of treatment program 122, executing on analytics device120, when preparing predicted business metrics to provide to predictionprogram 126 in accordance with an embodiment.

In process 302, treatment program 122 generates a set of predictedbusiness metrics. In one embodiment, treatment program 122 generates theset of predicted business metrics based on the business metricsreflected by the one or more reports and the number of intervals therequested predicted view indicated. For example, a report for which apredicted view is requested presents monthly sales for the trailingtwelve months. Treatment program 122 creates a set of predicted businessmetrics including predicted sales and the months that the predictionwill be made. Treatment program 122 will a set of a certain size basedon the interval or period of time for which the prediction will bedetermined. In some embodiments, a user specifies (e.g., via dashboardprogram 112) the interval for the prediction. In other embodiments, adefault or preferred interval for the prediction is retrieved frompreferences data 128. For example, if a user requests a predicted viewfor a report to display three months of predicted business metrics, thentreatment program 122 will create a set of predicted business metricsthat includes three records of the information.

In process 304, treatment program 122 will project the business metricsindicated to be independent metrics. Treatment program 122 determines adegree of increment for independent metrics. Based on the degree ofincrement, treatment program 122 increments the business metric for eachinterval of the requested prediction period. For example, treatmentprogram 122 determines that a business metric indicates the month atransaction occurred and assigns the metadata descriptor of longitudinalindependent metric (see process 206). Based on the metadata descriptorindicating a longitudinal independent metric, treatment program 122determines the degree of increment for the business metric (i.e., onemonth, in this example). For the set of predicted business metrics,treatment program 122 projects the business metric representing themonth a transaction occurred by one month from the last occurrence ofthe recorded business metric in business metric data 134. As anotherexample, a report presents a business metric representing the age groupsof customers, e.g., 18-19, 20-21, 22-23, and 24-25. Treatment program122 assigns the business metric a metadata descriptor ofnon-longitudinal independent metric (see process 206). Based on themetadata descriptor indicating a non-longitudinal independent metric,treatment program 122 determines any trend(s) in the series. In thisexample, treatment program 122 determines that the series increases bytwo for each entry. For the set of predicted business metrics, treatmentprogram 122 projects the business metric representing age by two fromthe last occurrence of the recorded business metric in business metricdata 134.

In process 306, treatment program 122 imports business metric values forrecorded known series from business metrics data 134 into the set ofpredicted business metrics. For business metrics determined to haverecorded known series metadata descriptors, treatment program 122retrieves a series of values of the business metric from business metricdata 134 and imports the value into the set of predicted businessmetrics. For example, a business metric corresponding to sales figuresof a previous year is determined to be a recorded known series and giventhe recorded metadata descriptor (see process 206). Treatment program122 retrieves the series of data for the business metric from businessmetrics data 134 and imports the values for into the set of predictedbusiness metrics. If the predicted view is to be determined to be threemonths in advance, then treatment program 122 retrieves thecorresponding projected months for the sales figures of the previousyear.

In process 308, treatment program 122 calculates business metrics withthe expression metadata descriptor. In one embodiment, treatment program122 calculates expression business metrics by determining values of apredicted business metric based on the determined expression and one orboth of the independent and dependent business metrics. Treatmentprogram 122 retrieves the determined expression from preferences data128. Treatment program 122 determines the value for the predictedbusiness metrics that are determined to be expression known series byusing the information generated in processes 304 and 306 for the set ofpredicted business metrics and calculating each record using theretrieved expression. For example, a profit business metric for lastyear is determined to have an expression metadata descriptor. The set ofpredicted business metric presents entries for a month that atransaction occurred (longitudinal independent metric), last year'ssales (recorded known series) and a unit cost (recorded known series).Treatment program 122 determines that the last year's profit businessmetric is an expression known series, with a corresponding expressionfor a given month of cost subtracted from last year's sales. For eachmonth of the set of predicted business metrics, treatment program 122calculates last year's profit based on the retrieved expression.

In process 310, treatment program 122 prepares the unknown series forforecasting by prediction program 126. For business metrics determinedto have metadata descriptors indicating the business metric is a unknownseries, treatment program 122 will format the particular business metricin the set of predicted business metrics to indicate to predictionprogram 126 that the particular business metric is to be forecasted. Insome embodiments, prediction program 126 operates with a certain format.In such embodiments, if business metrics data 134 is stored in anotherformat, the treatment program 122 will reformat the business metricsdata 134 and the predicted set of business metric to match the formatused by prediction program 126.

FIG. 4 illustrates screenshots 400 of dashboards 402 a and 402 b, inaccordance with an exemplary embodiment of the present invention.

Dashboard 402 a illustrates an example interface for dashboard program112. Dashboard 402 a may include a description 404 a of the overallreport. Description 404 a may also include the current time perioddisplayed by dashboard 402 a. Dashboard 402 a illustrates dashboardprogram 112 presenting recorded business metrics stored in businessmetrics data 134. Dashboard 402 a includes multiple reports (i.e.,reports 410 a, 420 a and 430 a). Report 410 a presents a scatter plotfor different customers and the respective cost per units sold for eachcustomer. Report 420 a includes sub-reports 424 a and 427 a. Sub-report424 a is a line chart presenting the monthly sales recorded. Sub-report427 a is a bar graph presenting year-over-year sales, which comparessales from the current period (in the depicted embodiment, January 2014to April 2014) and the same period for the previous calendar year (inthe depicted embodiment, January 2013 to April 2013). Report 430 a is apie chart presenting the percentage of profit realized for the customersC1, C2, C3 and C4.

Dashboard 402 a illustrates an example interface that provides twoglobal interface elements, global predicted view 408 a and globalprediction period 406 a. Each report or sub-report may have a localpredicted view interface element, e.g., predicted view interfaceelements 412 a, 422 a, 425 a, 428 a and 432 a. Each report or sub-reportmay have a local prediction period interface elements 414 a, 423 a, 426a, 429 a and 434 a. In exemplary embodiments, global predicted viewinterface element 408 a and global prediction period interface element406 a override the state of the local interface elements for reports,i.e., predicted view interface elements, 412 a, 422 a and 432 a, andprediction period interface elements, 414 a, 423 a and 434 a. Thepredicted view interface element 422 a and prediction period interfaceelement 423 a override the state of sub-report predicted view interfaceelements, 425 a and 428 a, and sub-report prediction period interfaceelements, 426 a and 429 a, respectively. In other embodiments, anoverride prevention interface elements 416 a and 436 a are presented.Enabling override prevention interface elements 416 a and 436 a preventssuch overrides occurring and lock the state of the predicted view andprediction period interface elements currently chosen for the report orsub-report. In exemplary embodiments, the state of each interfaceelement is stored in preferences data 128 of analytics device 120. Inother embodiments, the state of each interface element is stored locallyin client device 110.

Dashboard 402 b illustrates an example interface for dashboard program112. Dashboard 402 b illustrates the same interface as dashboard 402 awith certain interface elements having different states enabled. In thisexample, global predicted view interface element 408 b is enabled andglobal prediction period interface element 406 b is set to predict twomonths of predicted business metrics. Based on the value presented byglobal prediction period interface element 406 b, dashboard program 112updates description 404 b with the predicted period of time presented bydashboard 402 b. In response to the global predicted view interfaceelement 408 b being enabled, dashboard program 112 sends a request totreatment program 122 to update reports 410 b and 420 b. Dashboardprogram 112 propagates the global predicted view request to anysub-reports. Dashboard program 112 sends a request to treatment program122 to update sub-reports 424 b and 427 b. Dashboard program 112includes in the requests to treatment program 122 the value of globalprediction period 406 b (i.e. two months).

Dashboard 402 b illustrates an example interface for dashboard program112 where override prevention interface element 436 b for report 430 bis enabled. In response to override prevention interface element 436 bbeing enabled, dashboard program 112 does not override the localpredicted view interface element 432 b. Conversely, override preventioninterface element 416 b for report 410 b is not enabled, and, as such,dashboard program 112 overrides the local predicted view interface 412b. In response to the global predicted view interface element 408 bbeing enabled and override prevention interface element 416 b not beingenable, dashboard program 112 sends a request to update the report totreatment program 122 even though local predicted view interface element412 b is not enabled. Similarly local prediction period interfaceelement 414 b for report 410 b is set for one month; however globalprediction period interface element 406 b overrides the setting andsends a request to treatment program 122 to update report 410 b with apredicted view of two months, which is the value of global predictionperiod interface element 406 b. Local prediction period interfaceelements 422 b and 425 b are enabled and local prediction periodinterface element 428 b is not enabled. Report 420 b and sub-reports 424b and 427 b do not present an override prevention interface element,therefore global predicted view interface element 408 b overrides thestate of local prediction period interface elements 422 b, 425 b and 428b. Global prediction period interface element 406 b overrides localprediction period interface elements 423 b, 426 b and 429 b, based onreport 420 b and sub-reports 424 b and 427 b not presenting an overrideprevention interface element. Dashboard program 112 receives updatedreports from treatment program 122 based on the requests. Dashboardprogram 112 updates report 410 b and sub-reports 424 b and 427 b.Updated report 410 b and sub-reports 424 b and 427 b present a predictedview of two months for the business metrics previously presented inrespective report 410 a and sub-reports 424 a and 427 a of dashboard 402a.

FIG. 5 depicts a block diagram of components of user device 110,analytics device 120 and database 130, respectively, in accordance withan illustrative embodiment of the present invention. It should beappreciated that FIG. 5 provides only an illustration of oneimplementation and does not imply any limitations with regard to theenvironments in which different embodiments may be implemented. Manymodifications to the depicted environment may be made.

User device 110, analytics device 120 and database 130, respectively,include communications fabric 502, which provides communications betweencomputer processor(s) 504, memory 506, persistent storage 508,communications unit 510, and input/output (I/O) interface(s) 512.Communications fabric 502 can be implemented with any architecturedesigned for passing data and/or control information between processors(such as microprocessors, communications and network processors, etc.),system memory, peripheral devices, and any other hardware componentswithin a system. For example, communications fabric 502 can beimplemented with one or more buses.

Memory 506 and persistent storage 508 are computer-readable storagemedia. In this embodiment, memory 506 includes random access memory(RAM) 514 and cache memory 516. In general, memory 506 can include anysuitable volatile or non-volatile computer-readable storage media.

Dashboard program 112, treatment program 122, metadata program 124,prediction program 126, preferences data 128, database managementprogram 132 and business metrics data 134 are, respectively, stored inpersistent storage 508 for execution and/or access by one or more of therespective computer processors 504 via one or more memories of memory506. In this embodiment, persistent storage 508 includes a magnetic harddisk drive. Alternatively, or in addition to a magnetic hard disk drive,persistent storage 508 can include a solid state hard drive, asemiconductor storage device, read-only memory (ROM), erasableprogrammable read-only memory (EPROM), flash memory, or any othercomputer-readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 508 may also be removable. Forexample, a removable hard drive may be used for persistent storage 508.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer-readable storage medium that is also part of persistent storage508.

Communications unit 510, in these examples, provides for communicationswith other data processing systems or devices, including resources ofnetwork 140. In these examples, communications unit 510 includes one ormore network interface cards. Communications unit 510 may providecommunications through the use of either or both physical and wirelesscommunications links. Dashboard program 112, treatment program 122,metadata program 124, prediction program 126, preferences data 128,database management program 132 and business metrics data 134 may,respectively, be downloaded to persistent storage 508 throughcommunications unit 510.

I/O interface(s) 512 allows for input and output of data with otherdevices that may be connected to computing devices user device 110,analytics device 120 and database 130, respectively. For example, I/Ointerface 512 may provide a connection to external devices 518 such as akeyboard, keypad, a touch screen, and/or some other suitable inputdevice. External devices 518 can also include portable computer-readablestorage media such as, for example, thumb drives, portable optical ormagnetic disks, and memory cards. Software and data used to practiceembodiments of the present invention, e.g., dashboard program 112,treatment program 122, metadata program 124, prediction program 126,preferences data 128, database management program 132 and businessmetrics data 134, can, respectively, be stored on such portablecomputer-readable storage media and can be loaded onto persistentstorage 508 via I/O interface(s) 512. I/O interface(s) 512 also connectto a display 520.

Display 520 provides a mechanism to display data to a user and may be,for example, a computer monitor, or a television screen.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

It is to be noted that the term(s) “Smalltalk” and the like may besubject to trademark rights in various jurisdictions throughout theworld and are used here only in reference to the products or servicesproperly denominated by the marks to the extent that such trademarkrights may exist.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A method for business forecasting, comprising:receiving, by one or more processors, one or more sets of businessmetrics, wherein at least one of the one or more sets of businessmetrics comprises a set of recorded events; receiving, by the one ormore processors, a first metadata descriptor for a first set of businessmetrics of the one or more sets of business metrics; receiving, by theone or more processors, a second metadata descriptor for a second set ofbusiness metrics of the one or more sets of business metrics; preparing,by the one or more processors, the first set of business metrics forprediction of a third set of business metrics based on, at least inpart, the first metadata descriptor, wherein the first set and third seteach correspond to a different time period; and generating, by the oneor more processors, a fourth set of business metrics based on, at leastin part, the second metadata descriptor, wherein the second set andfourth set each correspond to a different time period.
 2. The method ofclaim 1, wherein the first metadata descriptor indicates that the firstset of business metrics has a non-predetermined trend.
 3. The method ofclaim 1, wherein the second metadata descriptor indicates that thesecond set of business metrics has a predetermined trend.
 4. The methodof claim 2, wherein preparing the first set of business metrics forprediction includes requesting a prediction of the first set of businessmetrics for the time period corresponding to the third set of businessmetrics.
 5. The method of claim 3, wherein generating the fourth set ofbusiness metrics includes determining at least one value of the fourthset of business metrics based on, at least in part, the predeterminedtrend.
 6. The method of claim 1, further comprising: presenting, by theone or more processors, a report including at least the first set andsecond set of business metrics, wherein a time period of the first setoverlaps the time period of the second set.
 7. The method of claim 6,wherein the report selectively includes the third set and fourth set ofbusiness metrics based on a configuration of the report.